package com.xh.hongaicodegenerator.core.parser;

import com.xh.hongaicodegenerator.exception.BusinessException;
import com.xh.hongaicodegenerator.exception.ErrorCode;
import com.xh.hongaicodegenerator.model.enums.CodeGenTypeEnum;


/**
 * 代码解析执行器
 * 门面模式：将多个功能封装成多个类，通过一个类进行调用
 */
public class CoderParserExecutor {

    private  static HtmlCodeParser htmlCodeParser = new HtmlCodeParser();
    private  static MultiFileCodeParser multiFileCodeParser = new MultiFileCodeParser();

    /**
     * 解析代码
     * @param codeContent
     * @param codeGenTypeEnum
     * @return
     */
    public static Object parseCode(String codeContent, CodeGenTypeEnum codeGenTypeEnum){
        return switch(codeGenTypeEnum){
            //根据不同策略选择解析器
            case HTML-> htmlCodeParser.parseCode(codeContent);
            case MULTI_FILE-> multiFileCodeParser.parseCode(codeContent);
            default -> throw new BusinessException(ErrorCode.SYSTEM_ERROR,"不支持的代码生成类型");
        };
    }
}
